Results

SEM a priori power analysis

Untuk melakukan power analysis, install dulu module PAMLj

Demonstrasi di bawah ini menggunakan a priori analysis tanpa simulasi (pada `Parameters` centang `Method` --> `Analytic`).

Penjelasannya:

Setiap uji hipotesis menghasilkan test statistics (dalam SEM berarti distribusi χ²) yang mengikuti distribusi yang sudah diketahui. Power analysis dasarnya memanfaatkan fitur distribusi χ² yang "pergeserannya" dapat diprediksi tergantung seberapa besar effect size yang sebenarnya "ada di populasi."

Konkretnya, ada dua jenis distribusi χ² yang terlibat:

  1. Di bawah asumsi H0 (model close fit, RMSEA = 0.05): test statistics mengikuti distribusi non-sentral dengan parameter non-sentralitas yang lebih kecil daripada H1
  2. Di bawah H1 (model poor fit, RMSEA > 0.08): test statistics mengikuti distribusi non-sentral yang lebih besar daripada H0

Power = probabilitas bahwa test statistics, yang diambil dari distribusi H1, melampaui nilai kritis di bawah asumsi bahwa H0 yang benar.

Dalam konteks SEM

Dengan asumsi H1 "yang benar di populasi", maka distribusi test statisticsnya mengikuti χ² non-sentral dengan parameter non-sentralitas:

λ = N × Fpopulasi

di mana Fpopulasi adalah diskrepansi populasi antara model H0 dan H1 — seberapa "salah" H0 jika H1 adalah "yang benar di populasi". Indikatornya termanifestasi di RMSEA, karena RMSEA (dalam power analysis) pada dasarnya adalah versi yang diskalakan/distandardisasi dari diskrepansi ini. Ini berbeda dengan RMSEA dalam analisis SEM yang biasanya!

Bedanya:

  1. RMSEA dalam power analysis = seberapa jauh model H0 (close fit) dan model H1 (poor fit) berbeda di populasi. Dalam hal ini, RMSEA adalah indikator effect size, bukan parsimony index seperti SEM biasanya.
  2. RMSEA dalam analisis SEM biasanya = seberapa jauh approximation error per degree of freedom yang diperkirakan terjadi di populasi

Alur power analysis:

  1. Spesifikasi model H1 dan H0
  2. Hitung diskrepansi populasi (Fpopulasi) antara keduanya — seberapa jauh H0 meleset jika H1 benar?
  3. Untuk kandidat N, hitung λ = N × Fpopulasi
  4. Dengan λ dan derajat kebebasan, hitung power menggunakan distribusi χ² non-sentral
  5. Iterasi N sampai power mencapai target (biasanya .80 - .90)

Mengapa a priori power analysis harus dilakukan?

SEM melibatkan banyak parameter yang harus diestimasi sekaligus (e.g., factor loadings, structural paths, indirect effects, dan indeks fit global) dan semua ini bergantung pada N. Ketika N terlalu kecil, konsekuensinya bukan hanya power yang rendah untuk satu hipotesis, melainkan ketidakpastian yang menyebar ke seluruh model: estimasi loading menjadi tidak stabil, standard error membesar, dan fit indices menjadi tidak reliabel sebagai basis keputusan. Inilah mengapa underpowered test dalam SEM lebih merugikan apabila dibandingkan dengan uji statistik yang lebih sederhana.

Jadi, sebuah model SEM unlikely bisa good fitting hanya dengan sekali mengambil data, apalagi ketika argumentasi teoritik yang mendasarinya sangat rapuh.

Oleh karena itu, justifikasi empirik dan teoritik untuk spesifikasi model sangat penting apalagi ketika model yang diestimasi sangat kompleks. Justifikasi empirik dari early evidence (misalnya dari pilot study) dapat membantu kita untuk 1) merencanakan jumlah sampel secara presisi (karena H1nya lebih realistis/presisi), agar sumberdaya yang dimiliki peneliti dapat digunakan secara optimal; 2) menilai apakah studi empirik untuk menguji keseluruhan model memang benar-benar layak/realistis dilakukan.

Info

iTesting the following condition:

To meet the previous requirements, one requires a minimum sample size of N=147

[3]

A Priori Power Analysis
modelNPowerRMSEAChi-squareddfα
.1470.9000.2683.8410.0500
[4] [5] [6]

 

Ingat, RMSEA ini adalah indikator effect size (lihat interpretasi nomor 1 di poin sebelumnya).

Hasil analisis menunjukkan bahwa N yang dibutuhkan untuk mendeteksi korelasi antara trust dan mandiri sebesar 0.3 adalah sekitar 147 untuk power ~ .901 TETAPI lihat RMSEA yang sangat besar (.269)!

Dalam power analysis, RMSEA ini mewakili population effect size -- seberapa besar kesalahan/menyimpang H0 jika H1 yang diasumsikan benar di populasi. Nilai yang tercantum di tabel di atas (.269) sangat besar.

Artinya, kita disini merencanakan suatu studi yang mendeteksi effect size yang sangat besar, sehingga tidak mungkin (!) gagal dideteksi.

Implikasinya: kalau seandainya effect size di populasi jauh lebih rendah dari 0.3 (yang biasanya adalah skenario yang lebih realistis), power yang sebenarnya jauh lebih rendah daripada 0.90, dan N = 147 tidak mungkin cukup untuk mendeteksi effect size yang sebenarnya di populasi tersebut.

Singkatnya, H1 (bahwa r = 0.3 dan RMSEA = 0.269) bisa jadi terlalu optimistik, sehingga sangat mungkin tidak realistis menggambarkan parameter sebenarnya di populasi.

Kesimpulan yang penting untuk dicatat

Asumsi effect size yang kita masukkan sangat menentukan hasil analisis. Jika kita mengasumsikan efek yang besar (misalnya koefisien jalur 0.3 -- seperti contoh di samping), N yang dibutuhkan tampak kecil dan menguntungkan secara praktis (N = 147, lihat tabel di bawah).

RMSEA = 0.269 bukan berarti modelnya salah (!!!). Ini berbeda dengan interpretasi RMSEA ketika digunakan sebagai parsimony index. Nilai ini besar karena dua alasan matematis: (1) effect size yang dihipotesiskan (a = 0.3) — semakin besar efek, semakin besar diskrepansi antara H0 dan H1, semakin besar RMSEA; dan (2) df = 1 — semakin kecil df, semakin besar nilai RMSEA.

Dengan df = 1, tidak ada yang "meredam" nilai RMSEA — bahkan diskrepansi moderat antara H0 dan H1 akan menghasilkan RMSEA yang besar.

Ketika asumsi effect size dikoreksi menjadi lebih konservatif (misalnya 0.1), N bisa melonjak drastis menjadi >1.000, karena hubungan antara ukuran effect size dan N bersifat kuadratik.

Inilah mengapa sensitivity analysis sangat penting: daripada hanya menghitung N untuk satu titik estimasi effect size, kita harus menguji rentang nilai yang masuk akal, sehingga kita tahu apakah kesimpulan kita robust atau justru rapuh terhadap asumsi yang kita buat.

Banyak studi SEM dalam psikologi yang underpowered karena dua masalah: 1) karena peneliti memilih asumsi effect size yang terlalu optimistik demi mendapatkan N yang tidak terlalu besar, dan 2) model yang digunakan memiliki df yang pas-pasan, sehingga kurang sensitif dalam mendeteksi model global fit secara akurat.

Padahal model SEM yang didemonstrasikan ini cenderung sederhana -- H1 hanya direct effect antara dua variabel laten (mandiri ~ trust) -- coba bayangkan apa yang terjadi apabila model SEM yang diuji sangat, sangat kompleks (misalnya, model dengan beberapa variabel laten + mediasi atau mediator laten) -- apa yang kira-kira akan terjadi?😉

Di sisi lain, tentu saja bisa jadi H1 dengan RMSEA = 0.269 defensible (masuk akal), tetapi terlepas dari itu:

Pertanyaan yang lebih mendasar lagi

"Bagaimana kita tahu bahwa H1 (r = 0.3) dengan RMSEA = 0.269 sebenarnya realistis/tidak realistis?"

Untuk mengetahui apakah parameter yang kita spesifikasikan dalam power analysis realistis, kita tidak bisa mengandalkan RMSEA itu sendiri sebagai kriterianya — RMSEA yang tercantum di tabel di atas hanyalah output yang mencerminkan parameter yang kita masukkan.

Validasi parameter harus dilakukan melalui sumber eksternal: idealnya dari meta-analisis yang memberikan distribusi ukuran efek lintas studi, dari studi-studi empiris sebelumnya dengan konstruk dan populasi yang serupa, dari pilot data kita sendiri, atau setidaknya dari argumentasi teoritik yang kuat.

RMSEA yang besar (misalnya > 0.08) dalam konteks power analysis bukan berarti modelnya salah, melainkan sebuah tanda bagi peneliti untuk skeptis dengan modelnya.

Tanyakan diri Anda: "Apakah asumsi effect size yang saya pegang terlalu optimistik?" terutama jika parameter tersebut hanya bersumber dari satu studi atau dari spekulasi.

Inilah mengapa sensitivity analysis sangat penting: daripada mempertahankan satu titik parameter, kita menguji power di berbagai nilai (dalam rentang tertentu yang masuk akal), sehingga kita bisa menilai seberapa robust desain penelitian kita terhadap ketidakpastian tentang effect size yang sesungguhnya ada di populasi.

Bagaimana kalau tidak ada informasi (literatur/studi pilot) yang dapat digunakan sebagai pegangan?

Dalam situasi ini, satu pendekatan yang mungkin berguna adalah Smallest Effect Size of Interest (SESOI), yaitu efek terkecil yang masih bermakna secara substantif atau praktis dalam konteks penelitian Anda. Alih-alih bertanya "seberapa besar efek yang ada di populasi?", kita justru bertanya "seberapa kecil efek yang masih (theoretically atau practically) relevan untuk dideteksi?"

Misalnya, jika koefisien jalur sebesar 0.1 tidak akan mengubah kesimpulan teoritis atau praktis Anda sama sekali, maka 0.1 bisa ditetapkan sebagai batas bawah SESOI. Power analysis kemudian didesain untuk mendeteksi effect size di atas batas tersebut.

Pendekatan ini lebih jujur dan defensible daripada memilih effect size semata-mata karena menghasilkan N yang convenient secara praktis, yang sayangnya masih umum terjadi dalam literatur SEM.

Power by Sample size
Sample sizePower to detectDescription
55≤50%Likely miss
55-11150% – 80%Good chance of missing
111-18280% – 95%Probably detect
182≥95%Almost surely detect

Note. Estimated for ES=0.26834

 

Power Curve by N

Power Parameters

Power Analysis parameters
YXME
0.9963000.268
0.9993500.268
1.0004000.268
1.0004500.268
1.0005000.268
1.0005500.268
1.0006000.268
1.0006500.268
1.0007000.268
1.0007500.268
1.0008000.268
1.0008500.268
1.0009000.268
1.0009500.268
1.00010000.268
1.00010500.268
1.00011000.268
1.00011500.268
1.00012000.268

 

SEM power analysis dengan pendekatan simulasi

Ini adalah demonstrasi melakukan power analysis untuk model SEM yang didemonstrasikan di workshop MG-SEM. Klik tab `Info` di bawah untuk melihat instruksi.

Untuk a priori power analysis (digunakan untuk mengestimasi jumlah sampel sebelum mengambil data), maka pilih `Calculate N`.

Dalam demonstrasi ini, saya menggunakan metode simulasi Monte-Carlo. Dengan simulasi Monte-Carlo, kita dapat mengestimasi sampling distribution dengan asumsi bahwa H1 "benar" di populasi.

Begini penjelasan tahap-tahapannya secara sederhana:

  1. Software "menganggap" H1 yang kita masukkan ke kotak script sebagai parameter di populasi, kemudian membuat N "dataset sintetik" lalu mengambil random sampling dari dataset-dataset sintetik tersebut
  2. Software kemudian membuat model yang dicocokkan dengan kumpulan data palsu tersebut kemudian memeriksa: apakah uji tersebut mendeteksi adanya efek? (misalnya, apakah jalurnya berbeda secara signifikan dari 0? Apakah kesesuaian model berbeda secara signifikan dari H0?)
  3. Software kemudian mengulangi prosedur ini N kali (dalam simulasi ini N = 100, lihat `Options` --> `Number of simulations = 100` -- `Seed` adalah nomor unik yang memastikan simulasi akan menghasilkan parameter yang sama setiap kali simulasi diulangi)
  4. Power = berapa proporsi model yang berhasil mendeteksi adanya efek
  5. Lihat power curve untuk melihat nilai N ≥ nilai target power yang ingin Anda capai

Oleh karena itu, umumnya simulasi Monte-Carlo butuh waktu runtime (waktu komputasi) yang lebih lama dari biasanya. Mohon bersabar menunggu hasilnya! Runtime sangat bergantung pada kompleksitas model -- makin kompleks modelnya, maka runtimenya akan lebih lama.

Secara umum, simulasi Monte Carlo berpotensi mengakomodasi kondisi data yang lebih realistis — seperti non-normalitas atau missing data. Namun, kemampuan ini bergantung pada implementasinya. TETAPI dalam modul PAMLj, `Monte Carlo` dan `Analytic` menghasilkan estimasi yang sebanding, karena keduanya berasumsi data berdistribusi normal dan terstandarisasi. Info

iTesting the following condition:

To meet the previous requirements, one requires a minimum sample size of N=104

[3]

A Priori Power Analysis
modelNPowerRMSEAChi-squareddfα% converged
.1040.9000.042710.710.0500.
[4] [5] [6]

 

Hasil analisis sangat berbeda dengan "Analytic" dan kelihatannya hasilnya lebih baik -- tetapi ingat, simulasi Monte Carlo hanya bisa dilakukan dengan PAMLj hanya ketika kita menggunakan unstandardized loading factor dan path coefficient (lihat bagian "Standardized solution" yang TIDAK dicentang, apabila dicentang akan muncul error message: RMSEA must be larger than zero).

Artinya, tabel di atas tidak bisa diandalkan.

Monte Carlo di PAMLj saat ini memiliki keterbatasan teknis — ia tidak dapat menjalankan simulasi dengan koefisien terstandarisasi pada model yang kompleks. Oleh karena itu, untuk demonstrasi ini, hasil analisis dari metode "Analytic" lebih bisa diandalkan dan diinterpretasikan dengan jelas daripada Monte Carlo.

Ini merupakan suatu pengingat bahwa software yang menghasilkan suatu output belum tentu berarti ia menghasilkan output yang tepat.

Power by Sample size
Sample sizePower to detectDescription
39≤50%Likely miss
39-7850% – 80%Good chance of missing
78-12880% – 95%Probably detect
128≥95%Almost surely detect

Note. Estimated for ES=0.042704

 

Model implied parameters

Latent Variables Covariances
 trustmandiri
trust1.0000.500
mandiri0.5001.250

 

Standardized regression coefficients
 
trust

 

Power Curve by N

References

[1] The jamovi project (2025). jamovi. (Version 2.7) [Computer Software]. Retrieved from https://www.jamovi.org.

[2] R Core Team (2025). R: A Language and environment for statistical computing. (Version 4.5) [Computer software]. Retrieved from https://cran.r-project.org. (R packages retrieved from CRAN snapshot 2025-05-25).

[3] Epskamp S. , Stuber S., Nak J., Veenman M,, Jorgensen T.D. (2019). semPlot: Path Diagrams and Visual Analysis of Various SEM Packages' Output. [R Package]. Retrieved from https://CRAN.R-project.org/package=semPlot.

[4] Morten Moshagen and Martina Bader, (2024). semPower: Power Analyses for SEM, R package version 2.1.1. . link.

[5] Rosseel, Y. (2019). lavaan: An R Package for Structural Equation Modeling. Journal of Statistical Software, 48(2), 1-36. link.

[6] Marcello Gallucci (2024). pamlj: Power analysis in jamovi (Version 0.9.0). . link.